﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
using System.Web.Script.Serialization;
using Negocio;
using System.Web.Services;

namespace Presentacion
{
    public partial class calendario : System.Web.UI.Page
    {
        
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        /// <summary>
        /// Metodo para actualizar eventos del calendario
        /// </summary>
        /// <param name="cevent">Objeto de tipo Calendario Academico cargado de informacion externa</param>
        /// <returns>Cadena de caracteres mostrando un mensaje de confirmacion o error.</returns>
        [System.Web.Services.WebMethod(true)]
        public static string UpdateEvent(calendarioAcademico cevent)
        {
            try
            {
                catalogoCalendarioAcademico _objCatalogoCalendario = new catalogoCalendarioAcademico();
                calendarioAcademico _objCalendarioAcademico = new calendarioAcademico();
                _objCalendarioAcademico.id = Convert.ToInt32(cevent.id);
                _objCalendarioAcademico.title = cevent.title.ToString();
                _objCalendarioAcademico.start = Convert.ToDateTime(cevent.start);
                _objCalendarioAcademico.end = Convert.ToDateTime(cevent.end);
                _objCalendarioAcademico.backgroundColor = cevent.backgroundColor.ToString();
                _objCalendarioAcademico.borderColor = cevent.borderColor.ToString();
                _objCalendarioAcademico.asistencia = cevent.asistencia;
                _objCatalogoCalendario.editarEventoCalendario(_objCalendarioAcademico);
                return "Evento modificado";
            } //Cierre try
            catch (Exception)
            {
                return "Error al modificar evento";
            } //Cierre Catch
        } //Cierre del metodo

        /// <summary>
        /// Metodo para eliminar eventos del calendario
        /// </summary>
        /// <param name="id">Número Identificador del evento en la base de datos</param>
        /// <returns>Cadena de caracteres mostrando un mensaje de confirmacion o error.</returns>
        
        [System.Web.Services.WebMethod(true)]
        public static string deleteEvent(int id)
        {
            try
            {
                catalogoCalendarioAcademico _objCatalogoEvento = new catalogoCalendarioAcademico();
                    _objCatalogoEvento.eliminarEventoCalendario(id);                    
                return "Evento Eliminada";
            }//Cierre try
            catch (Exception)
            {
                
                throw;
            }//Cierre catch
        }//Cierre metodo deleteEvent


        /// <summary>
        /// Metodo para añadir eventos al calendario
        /// </summary>
        /// <param name="cEvent">Objeto de tipo Calendario Academico cargado de informacion externa</param>
        /// <returns>Cadena de caracteres mostrando un mensaje de confirmacion o error</returns>
        [System.Web.Services.WebMethod(true)]
        public static string addEvent(calendarioAcademico cEvent)
        {
            try
            {
                
                catalogoCalendarioAcademico _objCatalogoCalendario = new catalogoCalendarioAcademico();
                calendarioAcademico _objCalendarioAcademico = new calendarioAcademico();
                _objCalendarioAcademico.id = Convert.ToInt32(cEvent.id);
                _objCalendarioAcademico.title = cEvent.title.ToString();
                _objCalendarioAcademico.start = Convert.ToDateTime(cEvent.start);
                _objCalendarioAcademico.end = Convert.ToDateTime(cEvent.end);
                _objCalendarioAcademico.backgroundColor = cEvent.backgroundColor.ToString();
                _objCalendarioAcademico.borderColor = cEvent.borderColor.ToString();
                _objCalendarioAcademico.idPeriodo = cEvent.idPeriodo;
                _objCalendarioAcademico.asistencia = cEvent.asistencia;

                if (_objCatalogoCalendario.agregarEventoCalendario(_objCalendarioAcademico))
                {
                    return "Evento agregado";  
                } 
                else
                    return "Error al agregar evento";
                
                
            } //Cierre try
            catch (Exception)
            {
                return "Error al agregar evento";
            }//Cierre catch

        }//Cierre metodo addEvent 

    }
}